
#ifdef PLATFORM_ESP32
void HandleWebUpdate();
void BeginWebUpdate();

static const char PROGMEM INDEX_HTML[] = R"rawliteral(<!DOCTYPE HTML>
<html>
<head>
<title>Welcome to your ExpressLRS System</title>
<meta charset=utf-8 />
<meta name=viewport content="width=device-width, initial-scale=1" />
<link rel=stylesheet href=css.css />
</head>
<body>
<section id=header>
<div class=inner>
<img src="" height=250 width=250 style=padding:20px></a>
<h1>Welcome to your <b>ExpressLRS</b><br/> update page<br/>
</h1>
<p>From here you can update the firmware on your module<br/>
<p>
<b>Firmware Rev. </b><var id=FirmVersion>1.0</var><p>
</div>
</section>
<br>
<section id=one class="main style1">
<div class=container>
<div align=left>
<legend><h2>Useful Links and Support:</h2></legend>
<h4><a href=https://github.com/AlessandroAU/ExpressLRS>GitHub Repository</a><h4>
<h4><a href=https://discord.gg/dS6ReFY>Discord Chat</a><h4>
</div>
<br>
<div align=left>
<fieldset>
Here you can update module firmware,
be careful to upload the correct file otherwise a bad flash may occur. If this happens you will need to reflash via USB/Serial.
<br><br>
<legend><h2>Firmware Update:</h2></legend>
<form method=POST action=/update enctype=multipart/form-data> <input type=file name=update> <input type=submit value=Update></form>
</form>
<br><br>
</fieldset>
</div>
</div>
</div>
</div>
</section>
</body>
</html>)rawliteral";

static const char PROGMEM CSS[] = R"rawliteral(a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:'';content:none}table{border-collapse:collapse;border-spacing:0}body{-webkit-text-size-adjust:none}*,:after,:before{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.container{margin-left:auto;margin-right:auto}.container.\31 25\25{width:100%;max-width:75em;min-width:60em}.container.\37 5\25{width:45em}.container.\35 0\25{width:30em}.container.\32 5\25{width:15em}.container{width:60em}@media screen and (max-width:1680px){.container.\31 25\25{width:100%;max-width:75em;min-width:60em}.container.\37 5\25{width:45em}.container.\35 0\25{width:30em}.container.\32 5\25{width:15em}.container{width:60em}}@media screen and (max-width:1140px){.container.\31 25\25{width:100%;max-width:112.5%;min-width:90%}.container.\37 5\25{width:67.5%}.container.\35 0\25{width:45%}.container.\32 5\25{width:22.5%}.container{width:90%}}@media screen and (max-width:980px){.container.\31 25\25{width:100%;max-width:125%;min-width:100%}.container.\37 5\25{width:75%}.container.\35 0\25{width:50%}.container.\32 5\25{width:25%}.container{width:100%!important}}@media screen and (max-width:736px){.container.\31 25\25{width:100%;max-width:125%;min-width:100%}.container.\37 5\25{width:75%}.container.\35 0\25{width:50%}.container.\32 5\25{width:25%}.container{width:100%!important}}@media screen and (max-width:480px){.container.\31 25\25{width:100%;max-width:125%;min-width:100%}.container.\37 5\25{width:75%}.container.\35 0\25{width:50%}.container.\32 5\25{width:25%}.container{width:100%!important}}@media screen and (max-width:320px){.container.\31 25\25{width:100%;max-width:125%;min-width:100%}.container.\37 5\25{width:75%}.container.\35 0\25{width:50%}.container.\32 5\25{width:25%}.container{width:100%!important}}th{text-align:left}body{background:#fff}body.is-loading *,body.is-loading :after,body.is-loading :before{-moz-animation:none!important;-webkit-animation:none!important;-ms-animation:none!important;animation:none!important;-moz-transition:none!important;-webkit-transition:none!important;-ms-transition:none!important;transition:none!important}body,input,select,textarea{color:#666;font-family:"Source Sans Pro",Helvetica,sans-serif;font-size:16pt;font-weight:300;line-height:1.65em}a{-moz-transition:color .2s ease-in-out,border-color .2s ease-in-out;-webkit-transition:color .2s ease-in-out,border-color .2s ease-in-out;-ms-transition:color .2s ease-in-out,border-color .2s ease-in-out;transition:color .2s ease-in-out,border-color .2s ease-in-out;border-bottom:dotted 1px #666;color:inherit;text-decoration:none}a:hover{border-bottom-color:transparent!important;color:#6bd4c8}b,strong{color:#555;font-weight:400}em,i{font-style:italic}p{margin:0 0 2em 0}h1,h2,h3,h4,h5,h6{color:#555;line-height:1em;margin:0 0 1em 0}h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{color:inherit;text-decoration:none}h1{font-size:2.25em;line-height:1.35em}h2{font-size:2em;line-height:1.35em}h3{font-size:1.35em;line-height:1.5em}h4{font-size:1.25em;line-height:1.5em}h5{font-size:.9em;line-height:1.5em}h6{font-size:.7em;line-height:1.5em}sub{font-size:.8em;position:relative;top:.5em}sup{font-size:.8em;position:relative;top:-.5em}hr{border:0;border-bottom:solid 1px rgba(144,144,144,.5);margin:2em 0}hr.major{margin:3em 0}blockquote{border-left:solid 4px rgba(144,144,144,.5);font-style:italic;margin:0 0 2em 0;padding:.5em 0 .5em 2em}code{background:rgba(144,144,144,.075);border-radius:4px;border:solid 1px rgba(144,144,144,.5);font-family:"Courier New",monospace;font-size:.9em;margin:0 .25em;padding:.25em .65em}pre{-webkit-overflow-scrolling:touch;font-family:"Courier New",monospace;font-size:.9em;margin:0 0 2em 0}pre code{display:block;line-height:1.75em;padding:1em 1.5em;overflow-x:auto}.align-left{text-align:left}.align-center{text-align:center}.align-right{text-align:right}#header{padding:9em 0 9em 0;background-color:#4686a0;color:rgba(255,255,255,.75);background-attachment:fixed,fixed,fixed;background-image:linear-gradient(45deg,#9dc66b 5%,#4fa49a 30%,#4361c2);background-position:top left,center center,center center;background-size:auto,cover,cover;overflow:hidden;position:relative;text-align:center}#header b,#header h1,#header h2,#header h3,#header h4,#header h5,#header h6,#header strong{color:#fff}@media screen and (max-width:1680px){body,input,select,textarea{font-size:14pt}#header{padding:6em 0 6em 0}}@media screen and (max-width:1140px){body,input,select,textarea{font-size:13pt}h1 br,h2 br,h3 br,h4 br,h5 br,h6 br{display:none}ul.major-icons li{padding:2em}ul.major-icons li .icon{height:8em;line-height:8em;width:8em}.main{padding:4em 0 2em 0}.main.style2{background-attachment:scroll}#header{padding:5em 0 5em 0;background-attachment:scroll}#header br{display:inline}#footer{padding:4em 0 4em 0;background-attachment:scroll}}@media screen and (max-width:980px){ul.major-icons li{padding:2em}ul.major-icons li .icon{height:7em;line-height:7em;width:7em}.main{padding:5em 3em 3em 3em}#header{padding:8em 3em 8em 3em}#footer{padding:5em 3em 5em 3em}#one{text-align:center}#two{text-align:center}}@media screen and (max-width:736px){body,input,select,textarea{font-size:12pt}h1{font-size:1.75em}h2{font-size:1.5em}h3{font-size:1.1em}h4{font-size:1em}ul.major-icons li{padding:1.5em}ul.major-icons li .icon{height:5em;line-height:5em;width:5em}ul.major-icons li .icon:before{font-size:42px}.icon.major{margin:0 0 1em 0}.main{padding:3em 1.5em 1em 1.5em}#header{padding:4em 3em 4em 3em}#header .actions{margin:2em 0 0 0}#footer{padding:3em 1.5em 3em 1.5em}}@media screen and (max-width:480px){ul.actions{margin:0 0 2em 0}ul.actions li{display:block;padding:1em 0 0 0;text-align:center;width:100%}ul.actions li:first-child{padding-top:0}ul.actions li>*{margin:0!important;width:100%}ul.actions li>.icon:before{margin-left:-2em}ul.actions.small li{padding:.5em 0 0 0}ul.actions.small li:first-child{padding-top:0}.main{padding:2em 1.5em .1em 1.5em}#header{padding:4em 2em 4em 2em}#header br{display:none}#footer{padding:2em 1.5em 2em 1.5em}#footer .copyright{margin:1.5em 0 0 0}#footer .copyright li{border:0;display:block;margin:1em 0 0 0;padding:0}#footer .copyright li:first-child{margin-top:0}}@media screen and (max-width:320px){body,html{min-width:320px}.main{padding:2em 1em .1em 1em}#header{padding:3em 1em 3em 1em}#footer{padding:2em 1em 2em 1em}})rawliteral";

static const char PROGMEM GO_BACK[] = R"rawliteral(
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<script>
javascript:history.back();
</script>
</body>
</html>
)rawliteral";
#endif